from Cryptodome.Cipher import DES
from docx import Document
text = str(input("请输入要加密字符:"))
Doc = Document()
Doc.add_paragraph(text)
Doc.save("明文.docx")
key = b'abcdefgh'  # 密钥 8位或16位,必须为bytes
def pad(text):
    """
    # 加密函数，如果text不是8的倍数【加密文本text必须为8的倍数！】，那就补足为8的倍数
    :param text:
    :return:
    """
    while len(text) % 8 != 0:
        text += ' '
    return text

des = DES.new(key, DES.MODE_ECB)  # 创建一个DES实例
padded_text = pad(text)
encrypted_text = des.encrypt(padded_text.encode('utf-8'))  # 加密
print(encrypted_text)
a=str(encrypted_text)
Doc2 = Document()
Doc2.add_paragraph(a)
Doc2.save("密文.docx")
# rstrip(' ')返回从字符串末尾删除所有字符串的字符串(默认空白字符)的副本
plain_text = des.decrypt(encrypted_text).decode().rstrip(' ')  # 解密
Doc3 = Document()
Doc3.add_paragraph(plain_text)
Doc3.save("解密后的.docx")
#from Cryptodome.Cipher import DES


# key = b'abcdefgh'  # 密钥 8位或16位,必须为bytes
# def pad(text):
#     """
#     # 加密函数，如果text不是8的倍数【加密文本text必须为8的倍数！】，那就补足为8的倍数
#     :param text:
#     :return:
#     """
#     while len(text) % 8 != 0:
#         text += ' '
#     return text
#
#
# des = DES.new(key, DES.MODE_ECB)  # 创建一个DES实例
# text = 'Python rocks!'
# padded_text = pad(text)
# encrypted_text = des.encrypt(padded_text.encode('utf-8'))  # 加密
# print(encrypted_text)
# # rstrip(' ')返回从字符串末尾删除所有字符串的字符串(默认空白字符)的副本
# plain_text = des.decrypt(encrypted_text).decode().rstrip(' ')  # 解密
# print(plain_text)
# from Cryptodome.Cipher import DES
# import binascii
#
# # 这是密钥
# key = b'abcdefgh'
# # 需要去生成一个DES对象
# des = DES.new(key, DES.MODE_ECB)
# # 需要加密的数据
# text = 'python spider!'
# text = text + (8 - (len(text) % 8)) * '='
# # 加密的过程
# encrypto_text = des.encrypt(text.encode())
# # 加密过后二进制转化为ASCII
# encrypto_text = binascii.b2a_hex(encrypto_text)
# print(encrypto_text)
# # 解密需要ASCII 先转化为二进制 然后再进行解密
# plaint = des.decrypt(binascii.a2b_hex(encrypto_text))
# print(plaint)
